// js使用的是require common.js
//ES6 module
//启动 后端服务
//引入最好最火最简单的node 架构
// 使用ES6的模块化module 引入我们的框架koa
import Koa from 'koa';
import Router from 'koa-router';//添加路由功能
import cors from '@koa/cors';
import { bodyParser } from '@koa/bodyparser';//解析post请求体
import OpenAI from 'openai';
import dotenv from 'dotenv';

dotenv.config({
    path: './.env'
});
console.log(process.env.OPENAI_KEY);

const client = new OpenAI({
    apiKey: process.env.OPENAI_KEY,
    baseURL: 'https://api.gptsapi.net/v1',
})

// 将网站当作一个app,将方法挂载在上面
const app = new Koa();
const router = new Router;
//挂载跨域功能
app.use(cors());
// 挂载请求体，请求解析功能
app.use(bodyParser())

router.post('/logo', async (ctx) => {
    console.log(ctx.request.body, '////////');
    const { title, desc } = ctx.request.body;//解构
    // ctx.body = {
    //     code: 1
    // }
    // return

    const client = new OpenAI({
        apiKey: process.env.OPENAI_KEY,
        baseURL: 'https://api.gptsapi.net/v1',
    })
    let response
    try {
        const prompt = `
            你是互联网大厂设计师
            请你为应用名为${title}
            功能是${desc}的`
        response = await client.images.generate({
            model: "dall-e-3",
            prompt: "prompt",
            n: 1,
            size: "1024x1024",
        })
        ctx.body = {
            code: 200,
            url: response.data[0].url
        };

    } catch (err) {
        console.log(err);
        ctx.body = {
            code: 500,
            msg: 'err'
        }
    }


})
router.get('/logo', (ctx) => {
    ctx.body = 'index page';
})
// 要加什么服务就使用.use挂载
// 用户通过http请求进来，use 里面的函数一定会执行
// 请求-> 中间件-> 响应
// app.use((ctx) => {
//     // ctx 是上下文
//     // 响应体
//     ctx.body = 'hello';
// })
// router.routers 路由上所有的声明加上去
app.use(router.routes());
//启动http服务 端口号3000 
app.listen(3000, () => {
    console.log('sever is running at http://localhost:3000');
})
